package com.staginfo.segs.base;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;

import com.staginfo.segs.MainActivity;
import com.staginfo.segs.interf.BaseViewInterface;
import com.staginfo.segs.util.ToastUtil;

import butterknife.ButterKnife;

/**
 * Created by robert.luozizhao on 2017/9/1 0001.
 */

public class BaseActivity extends AppCompatActivity implements BaseViewInterface {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 加载布局
        if (getLayout() != 0) {
            setContentView(getLayout());
        }
        ButterKnife.bind(this);// 牛油刀

        // 界面初始化，界面数据初始化
        initView();
        initData();


    }


    @Override
    public void initView() {

    }

    @Override
    public void initData() {

    }


    public int getLayout() {
        return 0;
    }


    //声明一个long类型变量：用于存放上一点击“返回键”的时刻
    private long mExitTime;
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (this.getClass()!= MainActivity.class){
            finish();
            return false;
        }

        //判断用户是否点击了“返回键”
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            //与上次点击返回键时刻作差
            if ((System.currentTimeMillis() - mExitTime) > 2000) {
                //大于2000ms则认为是误操作，使用Toast进行提示 Toast.makeText(this, "再按一次退出程序",
                ToastUtil.getInstance(this).shortToast("再按一次退出应用！");
                //并记录下本次点击“返回键”的时刻，以便下次进行判断
                mExitTime = System.currentTimeMillis();
            } else {
                //小于2000ms则认为是用户确实希望退出程序-调用System.exit()方法进行退出
                System.exit(0);
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }


}
